Packet-based communication systems allow a user of a device, such as a personal computer, to communicate across a computer network such as the internet. Packet-based communication systems provide features to the user such as voice over internet protocol (“VoIP”) calling, video calling, file transfer, instant messaging (“IM”), and voicemail. These systems are beneficial to the user as they are often of significantly lower cost than fixed line or mobile networks. This may particularly be the case for long-distance communication. To use a packet-based communication system, the user must install and execute communication client software on their user terminal. The communication client software enables the connections between users as well as other functions such as registration and authentication.
One type of packet-based communication system uses a peer-to-peer (“P2P”) overlay network topology operating on the internet. To enable access to a peer-to-peer system, the user must execute P2P client software provided by a P2P software provider on their user terminal, and register with the P2P system. When the user registers with the P2P system the client software is provided with a digital certificate from a server. Once the client software has been provided with the certificate, communication can subsequently be set-up and routed between user terminals of the P2P system without the further use of a server. The network address of a destination user terminal can be found by the client software accessing a P2P database distributed across other user terminals of the P2P system. Once the network address of the destination user terminal is known, the calling user terminal can exchange of one or more digital certificates with the destination user terminal. The exchange of the digital certificates between the user terminals provides proof of the users' identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the user. It is therefore a characteristic of peer-to-peer communication that the communication can be established and proceeds without using a server, by operating from end-user terminal to end-user terminal with support provided by other end-user terminals of the P2P system. Further details on such a P2P system are disclosed in WO 2005/009019.
File transfer functionality is provided by the packet-based communication system, and is utilised by users to share data files such as, for example, pictures, documents, audio files or movie clips. File transfers using the packet-based communication system are advantageous to the user compared to traditional methods for sending files such as email as there are not strict limits on the size of the files that can be sent, and the sender can readily track the progress of the transmission to determine if it has been received at the recipient. Furthermore, it is much easier and faster to set-up a file transfer using the packet-based communication system compared to other, dedicated file transfer methods such as ftp.
A problem with the file transfer functionality provided in packet-based communication systems is that both the sender and recipient of the data file need to be connected to the packet-based communication system (i.e. online) at the same time in order to exchange the file. This is in contrast to a service such as email, in which a file can be sent to a recipient regardless of whether the recipient is currently online. This can be problematic as the sender must wait for the recipient to be online before sending the file, and both parties must stay online until the transfer is completed. This reduces the utility of the file transfer functionality, and there is therefore a need for a technique to address the aforementioned problem with file transfer over the packet-based communication system.